iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
Modern Web

從零開始使用Microsoft MVC架構來搭建web server系列 第 17

DAY 17 登入案例演示_與資料庫互動以及判斷邏輯

  • 分享至 

  • xImage
  •  

在一般我們常看到的登入畫面都會有些基本流程,當我們在輸入帳號密碼後按下登入鍵之後都會發生什麼事呢?
如果登入成功就會跳轉到相應的頁面,否則會跳出警示訊息,我們通常會用if條件式來做這樣的判斷,那我們在做判斷時會需要兩種資訊
1.使用者輸入的帳號密碼
2.資料庫是否有這組帳號密碼
因此我們可以列出詳細流程:
連接資料庫->下SQL語法撈資料->將使用者輸入的帳號密碼帶入查看資料庫中是否有這筆資料->如果有則代表登入成功,否則失敗
實作
我們打開Controller然後加入以下程式碼


  public ActionResult DoLogin(loginfo info)
  {
  //與資料庫連接
 string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;UserID=TEST03;Password=1qaz@WSX;Encrypt=False";
 SqlConnection conn = new SqlConnection(connstr);
 conn.Open();
 //下SQL語法
 SqlCommand cmd = new SqlCommand("select * from student_login where account=@Account and  Password=@Password");
 cmd.Connection = conn;
 //填入參數(使用者輸入的帳號密碼)
 cmd.Parameters.AddWithValue("@account", info.Account);
 cmd.Parameters.AddWithValue("@Password", info.Password);
 //執行SQL語法來查詢是否有這組帳密
 SqlDataAdapter adpt = new SqlDataAdapter();
 DataSet ds = new DataSet();
 adpt.SelectCommand = cmd;
 adpt.Fill(ds);
 //如果有就跳轉到首頁
 if (ds.Tables[0].Rows.Count > 0)
 {
     return RedirectToAction("Index");
 }

解釋:
在上一篇中我們有創建一個class 名稱叫做loginfo,所以我們這次會需要一個參數就是loginfo的物件(loginfo info),本結演示如何將邏輯轉換為程式碼,然而詳細的程式邏輯會留到下個篇章講解,在這篇當中可以簡述一下,我們會先與資料庫取得連接之後下語法,語法當中其實不知道參數是甚麼,所以要填入參數,之後執行語法後判斷是否有找到這筆資料來決定是否有登入成功。

總結:
必須要先有概念才會比較熟悉如何建構,因此事前的建構是非常重要的!


上一篇
DAY 16 登入案例演示_1
下一篇
DAY 18 登入案例演示_程式碼詳解
系列文
從零開始使用Microsoft MVC架構來搭建web server30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言